其他
比特币减半6行代码解读
北京时间 5 月 12 日 03:23:43 ,比特币达到区块高度 630,000,每 10 分钟进入流通的比特币(BTC)数量(被称为区块奖励)减少了一半,从 12.5 个减少到 6.25 个。这是一个很容易看到的里程碑,因为它每四年就会发生一次,而且之前已经发生过两次(前两次减半分别发生于2012年11月28日和2016年7月10日)。
比特币减半逻辑在 github 相关代码如下。
什么是比特币减半?
新的比特币以区块奖励的形式进入流通领域,由矿工使用昂贵的电子设备赚取。
每 21 万个区块,也就是大致每 4 年,矿工们可能获得的比特币奖励总量就会减半。
2009 年,该系统开始时,每 10 分钟可以挖出 50 个比特币,两次减半后,目前每 10 分钟奖励 12.5 个比特币。
这个过程总共有 2100 万个比特币总量,大约在 2140 年全部发放结束。
6 行代码源代码(包括函数名及注释是 12行)如下。
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
{
int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;
// Force block reward to zero when right shift is undefined.
if (halvings >= 64)
return 0;
CAmount nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.
nSubsidy >>= halvings;
return nSubsidy;
}
感兴趣的开发者可以通过下面地址进一步了解:
https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp
长按二维码 关注「高可用架构」公众号